#include <iostream> 

using namespace std;

template<int N>
class A
{
public:
  int _arr[N];
};

template<class T, int N = 4>
class B
{
public:
  T _arr[N];
};

void test1()
{
  //const int n = 9;
  A<10> a;
  a._arr[9] = 1;
  cout << a._arr[9] << endl;
  B<int> b;
  b._arr[3] = 0;
  cout << b._arr[3] << endl;
}

template<class T>
bool Less(T a, T b)
{
  return a < b;
}

template<>
bool Less(int* a, int* b)
{
  return *a < *b;
}
void test2()
{
  int a = 1;
  int b = 2;
  cout << Less(a, b) << endl;
  cout << Less(&a, &b) << endl;
}

int main()
{
  test2();
  return 0;
}
